<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::SampleConsensusModel&lt; PointT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_sample_consensus_model.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="#pro-static-attribs">静态 Protected 属性</a> &#124;
<a href="#friends">友元</a> &#124;
<a href="classpcl_1_1_sample_consensus_model-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::SampleConsensusModel&lt; PointT &gt; 模板类 参考<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p><b><a class="el" href="classpcl_1_1_sample_consensus_model.html" title="SampleConsensusModel represents the base model class. All sample consensus models must inherit from t...">SampleConsensusModel</a></b> represents the base model class. All sample consensus models must inherit from this class.  
 <a href="classpcl_1_1_sample_consensus_model.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="sample__consensus_2include_2pcl_2sample__consensus_2sac__model_8h_source.html">sac_model.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::SampleConsensusModel&lt; PointT &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_sample_consensus_model.png" usemap="#pcl::SampleConsensusModel_3C_20PointT_20_3E_map" alt=""/>
  <map id="pcl::SampleConsensusModel_3C_20PointT_20_3E_map" name="pcl::SampleConsensusModel_3C_20PointT_20_3E_map">
<area href="classpcl_1_1_sample_consensus_model_circle2_d.html" title="SampleConsensusModelCircle2D defines a model for 2D circle segmentation on the X-Y plane." alt="pcl::SampleConsensusModelCircle2D&lt; PointT &gt;" shape="rect" coords="343,56,676,80"/>
<area href="classpcl_1_1_sample_consensus_model_circle3_d.html" title="SampleConsensusModelCircle3D defines a model for 3D circle segmentation." alt="pcl::SampleConsensusModelCircle3D&lt; PointT &gt;" shape="rect" coords="343,112,676,136"/>
<area href="classpcl_1_1_sample_consensus_model_cone.html" title="SampleConsensusModelCone defines a model for 3D cone segmentation. The model coefficients are defined..." alt="pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;" shape="rect" coords="343,168,676,192"/>
<area href="classpcl_1_1_sample_consensus_model_cylinder.html" title="SampleConsensusModelCylinder defines a model for 3D cylinder segmentation. The model coefficients are..." alt="pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;" shape="rect" coords="343,224,676,248"/>
<area href="classpcl_1_1_sample_consensus_model_line.html" title="SampleConsensusModelLine defines a model for 3D line segmentation. The model coefficients are defined..." alt="pcl::SampleConsensusModelLine&lt; PointT &gt;" shape="rect" coords="343,280,676,304"/>
<area href="classpcl_1_1_sample_consensus_model_plane.html" title="SampleConsensusModelPlane defines a model for 3D plane segmentation. The model coefficients are defin..." alt="pcl::SampleConsensusModelPlane&lt; PointT &gt;" shape="rect" coords="343,336,676,360"/>
<area href="classpcl_1_1_sample_consensus_model_registration.html" title="SampleConsensusModelRegistration defines a model for Point-To-Point registration outlier rejection." alt="pcl::SampleConsensusModelRegistration&lt; PointT &gt;" shape="rect" coords="343,392,676,416"/>
<area href="classpcl_1_1_sample_consensus_model_sphere.html" title="SampleConsensusModelSphere defines a model for 3D sphere segmentation. The model coefficients are def..." alt="pcl::SampleConsensusModelSphere&lt; PointT &gt;" shape="rect" coords="343,448,676,472"/>
<area href="classpcl_1_1_sample_consensus_model_stick.html" title="SampleConsensusModelStick defines a model for 3D stick segmentation. A stick is a line with an user g..." alt="pcl::SampleConsensusModelStick&lt; PointT &gt;" shape="rect" coords="343,504,676,528"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a70b51e8d9f8526c1d2dc69ce68d9269e"><td class="memItemLeft" align="right" valign="top"><a id="a70b51e8d9f8526c1d2dc69ce68d9269e"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:a70b51e8d9f8526c1d2dc69ce68d9269e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f28a92c63418a12f95d1d668d13b49f"><td class="memItemLeft" align="right" valign="top"><a id="a8f28a92c63418a12f95d1d668d13b49f"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:a8f28a92c63418a12f95d1d668d13b49f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef5bb60764603c6566d663d6e8575b7d"><td class="memItemLeft" align="right" valign="top"><a id="aef5bb60764603c6566d663d6e8575b7d"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:aef5bb60764603c6566d663d6e8575b7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae432b503734f6bb16a0c47b6bfa8616d"><td class="memItemLeft" align="right" valign="top"><a id="ae432b503734f6bb16a0c47b6bfa8616d"></a>
typedef <a class="el" href="classpcl_1_1search_1_1_search.html">pcl::search::Search</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>SearchPtr</b></td></tr>
<tr class="separator:ae432b503734f6bb16a0c47b6bfa8616d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf6ca2b42beebcccb83a22d50866392c"><td class="memItemLeft" align="right" valign="top"><a id="acf6ca2b42beebcccb83a22d50866392c"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_sample_consensus_model.html">SampleConsensusModel</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:acf6ca2b42beebcccb83a22d50866392c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a028b710e8a2c3b3fa62c34c1a348c575"><td class="memItemLeft" align="right" valign="top"><a id="a028b710e8a2c3b3fa62c34c1a348c575"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_sample_consensus_model.html">SampleConsensusModel</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a028b710e8a2c3b3fa62c34c1a348c575"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:aa99d99ea0457237eca3b2f8e9a39022b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#aa99d99ea0457237eca3b2f8e9a39022b">SampleConsensusModel</a> (const PointCloudConstPtr &amp;cloud, bool random=false)</td></tr>
<tr class="memdesc:aa99d99ea0457237eca3b2f8e9a39022b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for base <a class="el" href="classpcl_1_1_sample_consensus_model.html" title="SampleConsensusModel represents the base model class. All sample consensus models must inherit from t...">SampleConsensusModel</a>.  <a href="classpcl_1_1_sample_consensus_model.html#aa99d99ea0457237eca3b2f8e9a39022b">更多...</a><br /></td></tr>
<tr class="separator:aa99d99ea0457237eca3b2f8e9a39022b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fd6d364bc52a69c6aff54691975b7aa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a3fd6d364bc52a69c6aff54691975b7aa">SampleConsensusModel</a> (const PointCloudConstPtr &amp;cloud, const std::vector&lt; int &gt; &amp;indices, bool random=false)</td></tr>
<tr class="memdesc:a3fd6d364bc52a69c6aff54691975b7aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for base <a class="el" href="classpcl_1_1_sample_consensus_model.html" title="SampleConsensusModel represents the base model class. All sample consensus models must inherit from t...">SampleConsensusModel</a>.  <a href="classpcl_1_1_sample_consensus_model.html#a3fd6d364bc52a69c6aff54691975b7aa">更多...</a><br /></td></tr>
<tr class="separator:a3fd6d364bc52a69c6aff54691975b7aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fd82ae7fce7b90406608b8db249acd1"><td class="memItemLeft" align="right" valign="top"><a id="a6fd82ae7fce7b90406608b8db249acd1"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a6fd82ae7fce7b90406608b8db249acd1">~SampleConsensusModel</a> ()</td></tr>
<tr class="memdesc:a6fd82ae7fce7b90406608b8db249acd1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor for base <a class="el" href="classpcl_1_1_sample_consensus_model.html" title="SampleConsensusModel represents the base model class. All sample consensus models must inherit from t...">SampleConsensusModel</a>. <br /></td></tr>
<tr class="separator:a6fd82ae7fce7b90406608b8db249acd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ae178816daf4f2c7af3a19d12324b77"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a2ae178816daf4f2c7af3a19d12324b77">getSamples</a> (int &amp;iterations, std::vector&lt; int &gt; &amp;samples)</td></tr>
<tr class="memdesc:a2ae178816daf4f2c7af3a19d12324b77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a set of random data samples and return them as point indices.  <a href="classpcl_1_1_sample_consensus_model.html#a2ae178816daf4f2c7af3a19d12324b77">更多...</a><br /></td></tr>
<tr class="separator:a2ae178816daf4f2c7af3a19d12324b77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76c5d4484f1c08a9a15f03e497296cfe"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a76c5d4484f1c08a9a15f03e497296cfe">computeModelCoefficients</a> (const std::vector&lt; int &gt; &amp;samples, Eigen::VectorXf &amp;model_coefficients)=0</td></tr>
<tr class="memdesc:a76c5d4484f1c08a9a15f03e497296cfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether the given index samples can form a valid model, compute the model coefficients from these samples and store them in model_coefficients. Pure virtual.  <a href="classpcl_1_1_sample_consensus_model.html#a76c5d4484f1c08a9a15f03e497296cfe">更多...</a><br /></td></tr>
<tr class="separator:a76c5d4484f1c08a9a15f03e497296cfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a667767897fbfe615aeeb9eca8dd1b8c6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a667767897fbfe615aeeb9eca8dd1b8c6">optimizeModelCoefficients</a> (const std::vector&lt; int &gt; &amp;inliers, const Eigen::VectorXf &amp;model_coefficients, Eigen::VectorXf &amp;optimized_coefficients)=0</td></tr>
<tr class="memdesc:a667767897fbfe615aeeb9eca8dd1b8c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recompute the model coefficients using the given inlier set and return them to the user. Pure virtual.  <a href="classpcl_1_1_sample_consensus_model.html#a667767897fbfe615aeeb9eca8dd1b8c6">更多...</a><br /></td></tr>
<tr class="separator:a667767897fbfe615aeeb9eca8dd1b8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc4ab752a4819218988ff5429b5a3c06"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#adc4ab752a4819218988ff5429b5a3c06">getDistancesToModel</a> (const Eigen::VectorXf &amp;model_coefficients, std::vector&lt; double &gt; &amp;distances)=0</td></tr>
<tr class="memdesc:adc4ab752a4819218988ff5429b5a3c06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute all distances from the cloud data to a given model. Pure virtual.  <a href="classpcl_1_1_sample_consensus_model.html#adc4ab752a4819218988ff5429b5a3c06">更多...</a><br /></td></tr>
<tr class="separator:adc4ab752a4819218988ff5429b5a3c06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9aefc3c3ab13ede1430c680e9243d26"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#af9aefc3c3ab13ede1430c680e9243d26">selectWithinDistance</a> (const Eigen::VectorXf &amp;model_coefficients, const double threshold, std::vector&lt; int &gt; &amp;inliers)=0</td></tr>
<tr class="memdesc:af9aefc3c3ab13ede1430c680e9243d26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Select all the points which respect the given model coefficients as inliers. Pure virtual.  <a href="classpcl_1_1_sample_consensus_model.html#af9aefc3c3ab13ede1430c680e9243d26">更多...</a><br /></td></tr>
<tr class="separator:af9aefc3c3ab13ede1430c680e9243d26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4257edca979112fb2a7b5dfc4b824ca2"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a4257edca979112fb2a7b5dfc4b824ca2">countWithinDistance</a> (const Eigen::VectorXf &amp;model_coefficients, const double threshold)=0</td></tr>
<tr class="memdesc:a4257edca979112fb2a7b5dfc4b824ca2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count all the points which respect the given model coefficients as inliers. Pure virtual.  <a href="classpcl_1_1_sample_consensus_model.html#a4257edca979112fb2a7b5dfc4b824ca2">更多...</a><br /></td></tr>
<tr class="separator:a4257edca979112fb2a7b5dfc4b824ca2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34c480d48be740e6085e8ba59c7293ed"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a34c480d48be740e6085e8ba59c7293ed">projectPoints</a> (const std::vector&lt; int &gt; &amp;inliers, const Eigen::VectorXf &amp;model_coefficients, <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;projected_points, bool copy_data_fields=true)=0</td></tr>
<tr class="memdesc:a34c480d48be740e6085e8ba59c7293ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new point cloud with inliers projected onto the model. Pure virtual.  <a href="classpcl_1_1_sample_consensus_model.html#a34c480d48be740e6085e8ba59c7293ed">更多...</a><br /></td></tr>
<tr class="separator:a34c480d48be740e6085e8ba59c7293ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab36a50dd4848b902f2e7a75b29b78c76"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#ab36a50dd4848b902f2e7a75b29b78c76">doSamplesVerifyModel</a> (const std::set&lt; int &gt; &amp;indices, const Eigen::VectorXf &amp;model_coefficients, const double threshold)=0</td></tr>
<tr class="memdesc:ab36a50dd4848b902f2e7a75b29b78c76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify whether a subset of indices verifies a given set of model coefficients. Pure virtual.  <a href="classpcl_1_1_sample_consensus_model.html#ab36a50dd4848b902f2e7a75b29b78c76">更多...</a><br /></td></tr>
<tr class="separator:ab36a50dd4848b902f2e7a75b29b78c76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae3b06fbee5243f926d40f8115bd406c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#aae3b06fbee5243f926d40f8115bd406c">setInputCloud</a> (const PointCloudConstPtr &amp;cloud)</td></tr>
<tr class="memdesc:aae3b06fbee5243f926d40f8115bd406c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the input dataset  <a href="classpcl_1_1_sample_consensus_model.html#aae3b06fbee5243f926d40f8115bd406c">更多...</a><br /></td></tr>
<tr class="separator:aae3b06fbee5243f926d40f8115bd406c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41226f6ed6de6db5ea190f265f520fc9"><td class="memItemLeft" align="right" valign="top"><a id="a41226f6ed6de6db5ea190f265f520fc9"></a>
PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a41226f6ed6de6db5ea190f265f520fc9">getInputCloud</a> () const</td></tr>
<tr class="memdesc:a41226f6ed6de6db5ea190f265f520fc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the input point cloud dataset. <br /></td></tr>
<tr class="separator:a41226f6ed6de6db5ea190f265f520fc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d9b6652b63eacd8c0ae1fb3a3eafa25"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a4d9b6652b63eacd8c0ae1fb3a3eafa25">setIndices</a> (const boost::shared_ptr&lt; std::vector&lt; int &gt; &gt; &amp;indices)</td></tr>
<tr class="memdesc:a4d9b6652b63eacd8c0ae1fb3a3eafa25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_sample_consensus_model.html#a4d9b6652b63eacd8c0ae1fb3a3eafa25">更多...</a><br /></td></tr>
<tr class="separator:a4d9b6652b63eacd8c0ae1fb3a3eafa25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d23c173237ca4be1451182b9a84b3ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a6d23c173237ca4be1451182b9a84b3ac">setIndices</a> (const std::vector&lt; int &gt; &amp;indices)</td></tr>
<tr class="memdesc:a6d23c173237ca4be1451182b9a84b3ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide the vector of indices that represents the input data.  <a href="classpcl_1_1_sample_consensus_model.html#a6d23c173237ca4be1451182b9a84b3ac">更多...</a><br /></td></tr>
<tr class="separator:a6d23c173237ca4be1451182b9a84b3ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b59467495bbcc1e6ba1b69bbd6c4206"><td class="memItemLeft" align="right" valign="top"><a id="a7b59467495bbcc1e6ba1b69bbd6c4206"></a>
boost::shared_ptr&lt; std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a7b59467495bbcc1e6ba1b69bbd6c4206">getIndices</a> () const</td></tr>
<tr class="memdesc:a7b59467495bbcc1e6ba1b69bbd6c4206"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:a7b59467495bbcc1e6ba1b69bbd6c4206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c2824f82edf6564ba8a0160526992f0"><td class="memItemLeft" align="right" valign="top"><a id="a2c2824f82edf6564ba8a0160526992f0"></a>
virtual SacModel&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a2c2824f82edf6564ba8a0160526992f0">getModelType</a> () const =0</td></tr>
<tr class="memdesc:a2c2824f82edf6564ba8a0160526992f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an unique id for each type of model employed. <br /></td></tr>
<tr class="separator:a2c2824f82edf6564ba8a0160526992f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a490884cb22bfa92325111bd5be0bbe96"><td class="memItemLeft" align="right" valign="top"><a id="a490884cb22bfa92325111bd5be0bbe96"></a>
const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a490884cb22bfa92325111bd5be0bbe96">getClassName</a> () const</td></tr>
<tr class="memdesc:a490884cb22bfa92325111bd5be0bbe96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a string representation of the name of this class. <br /></td></tr>
<tr class="separator:a490884cb22bfa92325111bd5be0bbe96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff175b4323080fe1a3ca98a76ca4da46"><td class="memItemLeft" align="right" valign="top"><a id="aff175b4323080fe1a3ca98a76ca4da46"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#aff175b4323080fe1a3ca98a76ca4da46">getSampleSize</a> () const</td></tr>
<tr class="memdesc:aff175b4323080fe1a3ca98a76ca4da46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of a sample from which the model is computed. <br /></td></tr>
<tr class="separator:aff175b4323080fe1a3ca98a76ca4da46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35884d269a39055c962b24d1db5fa97d"><td class="memItemLeft" align="right" valign="top"><a id="a35884d269a39055c962b24d1db5fa97d"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a35884d269a39055c962b24d1db5fa97d">getModelSize</a> () const</td></tr>
<tr class="memdesc:a35884d269a39055c962b24d1db5fa97d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of coefficients in the model. <br /></td></tr>
<tr class="separator:a35884d269a39055c962b24d1db5fa97d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ed94271a12d7903c0bee9091e9a8f95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a3ed94271a12d7903c0bee9091e9a8f95">setRadiusLimits</a> (const double &amp;min_radius, const double &amp;max_radius)</td></tr>
<tr class="memdesc:a3ed94271a12d7903c0bee9091e9a8f95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the minimum and maximum allowable radius limits for the model (applicable to models that estimate a radius)  <a href="classpcl_1_1_sample_consensus_model.html#a3ed94271a12d7903c0bee9091e9a8f95">更多...</a><br /></td></tr>
<tr class="separator:a3ed94271a12d7903c0bee9091e9a8f95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acff95be7097cf723a598d3b28e828487"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#acff95be7097cf723a598d3b28e828487">getRadiusLimits</a> (double &amp;min_radius, double &amp;max_radius)</td></tr>
<tr class="memdesc:acff95be7097cf723a598d3b28e828487"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the minimum and maximum allowable radius limits for the model as set by the user.  <a href="classpcl_1_1_sample_consensus_model.html#acff95be7097cf723a598d3b28e828487">更多...</a><br /></td></tr>
<tr class="separator:acff95be7097cf723a598d3b28e828487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9eea9dd0e12e1de8671ac542400d3f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#af9eea9dd0e12e1de8671ac542400d3f1">setSamplesMaxDist</a> (const double &amp;radius, SearchPtr search)</td></tr>
<tr class="memdesc:af9eea9dd0e12e1de8671ac542400d3f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum distance allowed when drawing random samples  <a href="classpcl_1_1_sample_consensus_model.html#af9eea9dd0e12e1de8671ac542400d3f1">更多...</a><br /></td></tr>
<tr class="separator:af9eea9dd0e12e1de8671ac542400d3f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1aebacea0f2bdd7529f48f739f11c6c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a1aebacea0f2bdd7529f48f739f11c6c0">getSamplesMaxDist</a> (double &amp;radius)</td></tr>
<tr class="memdesc:a1aebacea0f2bdd7529f48f739f11c6c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get maximum distance allowed when drawing random samples  <a href="classpcl_1_1_sample_consensus_model.html#a1aebacea0f2bdd7529f48f739f11c6c0">更多...</a><br /></td></tr>
<tr class="separator:a1aebacea0f2bdd7529f48f739f11c6c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ac96856f60671f5d56be00a174963a8"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a2ac96856f60671f5d56be00a174963a8">computeVariance</a> (const std::vector&lt; double &gt; &amp;error_sqr_dists)</td></tr>
<tr class="memdesc:a2ac96856f60671f5d56be00a174963a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the variance of the errors to the model.  <a href="classpcl_1_1_sample_consensus_model.html#a2ac96856f60671f5d56be00a174963a8">更多...</a><br /></td></tr>
<tr class="separator:a2ac96856f60671f5d56be00a174963a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3de5bb66de04a4f0b3bc014a0676d48"><td class="memItemLeft" align="right" valign="top"><a id="ad3de5bb66de04a4f0b3bc014a0676d48"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#ad3de5bb66de04a4f0b3bc014a0676d48">computeVariance</a> ()</td></tr>
<tr class="memdesc:ad3de5bb66de04a4f0b3bc014a0676d48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the variance of the errors to the model from the internally estimated vector of distances. The model must be computed first (or at least selectWithinDistance must be called). <br /></td></tr>
<tr class="separator:ad3de5bb66de04a4f0b3bc014a0676d48"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:a910f3f0d75a6c2bf8bc4a9c43df825ce"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a910f3f0d75a6c2bf8bc4a9c43df825ce">SampleConsensusModel</a> (bool random=false)</td></tr>
<tr class="memdesc:a910f3f0d75a6c2bf8bc4a9c43df825ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor for base <a class="el" href="classpcl_1_1_sample_consensus_model.html" title="SampleConsensusModel represents the base model class. All sample consensus models must inherit from t...">SampleConsensusModel</a>.  <a href="classpcl_1_1_sample_consensus_model.html#a910f3f0d75a6c2bf8bc4a9c43df825ce">更多...</a><br /></td></tr>
<tr class="separator:a910f3f0d75a6c2bf8bc4a9c43df825ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f687798633c8e702568aea8d68b2bec"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a2f687798633c8e702568aea8d68b2bec">drawIndexSample</a> (std::vector&lt; int &gt; &amp;sample)</td></tr>
<tr class="memdesc:a2f687798633c8e702568aea8d68b2bec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills a sample array with random samples from the indices_ vector  <a href="classpcl_1_1_sample_consensus_model.html#a2f687798633c8e702568aea8d68b2bec">更多...</a><br /></td></tr>
<tr class="separator:a2f687798633c8e702568aea8d68b2bec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94696e418be704a4443b031ca18bc298"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a94696e418be704a4443b031ca18bc298">drawIndexSampleRadius</a> (std::vector&lt; int &gt; &amp;sample)</td></tr>
<tr class="memdesc:a94696e418be704a4443b031ca18bc298"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills a sample array with one random sample from the indices_ vector and other random samples that are closer than samples_radius_  <a href="classpcl_1_1_sample_consensus_model.html#a94696e418be704a4443b031ca18bc298">更多...</a><br /></td></tr>
<tr class="separator:a94696e418be704a4443b031ca18bc298"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad22a9cfdd9cf08bcf85ef1e88b62b9d2"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#ad22a9cfdd9cf08bcf85ef1e88b62b9d2">isModelValid</a> (const Eigen::VectorXf &amp;model_coefficients)</td></tr>
<tr class="memdesc:ad22a9cfdd9cf08bcf85ef1e88b62b9d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a model is valid given the user constraints.  <a href="classpcl_1_1_sample_consensus_model.html#ad22a9cfdd9cf08bcf85ef1e88b62b9d2">更多...</a><br /></td></tr>
<tr class="separator:ad22a9cfdd9cf08bcf85ef1e88b62b9d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac38e3dc90b66bacc563605a31901ac55"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#ac38e3dc90b66bacc563605a31901ac55">isSampleGood</a> (const std::vector&lt; int &gt; &amp;samples) const =0</td></tr>
<tr class="memdesc:ac38e3dc90b66bacc563605a31901ac55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a sample of indices results in a good sample of points indices. Pure virtual.  <a href="classpcl_1_1_sample_consensus_model.html#ac38e3dc90b66bacc563605a31901ac55">更多...</a><br /></td></tr>
<tr class="separator:ac38e3dc90b66bacc563605a31901ac55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8b77e6a4edb210c2ddaca923ac8470a"><td class="memItemLeft" align="right" valign="top"><a id="ab8b77e6a4edb210c2ddaca923ac8470a"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#ab8b77e6a4edb210c2ddaca923ac8470a">rnd</a> ()</td></tr>
<tr class="memdesc:ab8b77e6a4edb210c2ddaca923ac8470a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boost-based random number generator. <br /></td></tr>
<tr class="separator:ab8b77e6a4edb210c2ddaca923ac8470a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:ab10fd6af7c7ab78040d4f638a572943f"><td class="memItemLeft" align="right" valign="top"><a id="ab10fd6af7c7ab78040d4f638a572943f"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#ab10fd6af7c7ab78040d4f638a572943f">model_name_</a></td></tr>
<tr class="memdesc:ab10fd6af7c7ab78040d4f638a572943f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The model name. <br /></td></tr>
<tr class="separator:ab10fd6af7c7ab78040d4f638a572943f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bffa6777a49f1c461ee8e0960bbec01"><td class="memItemLeft" align="right" valign="top"><a id="a7bffa6777a49f1c461ee8e0960bbec01"></a>
PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a7bffa6777a49f1c461ee8e0960bbec01">input_</a></td></tr>
<tr class="memdesc:a7bffa6777a49f1c461ee8e0960bbec01"><td class="mdescLeft">&#160;</td><td class="mdescRight">A boost shared pointer to the point cloud data array. <br /></td></tr>
<tr class="separator:a7bffa6777a49f1c461ee8e0960bbec01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad45adf0e36f396a908c2ba08cfdd7a41"><td class="memItemLeft" align="right" valign="top"><a id="ad45adf0e36f396a908c2ba08cfdd7a41"></a>
boost::shared_ptr&lt; std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a></td></tr>
<tr class="memdesc:ad45adf0e36f396a908c2ba08cfdd7a41"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector of point indices to use. <br /></td></tr>
<tr class="separator:ad45adf0e36f396a908c2ba08cfdd7a41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e4708339fa0bc73aac513ddb1891a18"><td class="memItemLeft" align="right" valign="top"><a id="a3e4708339fa0bc73aac513ddb1891a18"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a3e4708339fa0bc73aac513ddb1891a18">radius_min_</a></td></tr>
<tr class="memdesc:a3e4708339fa0bc73aac513ddb1891a18"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum and maximum radius limits for the model. Applicable to all models that estimate a radius. <br /></td></tr>
<tr class="separator:a3e4708339fa0bc73aac513ddb1891a18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e6cdd749083398f532e2e2e3e22d544"><td class="memItemLeft" align="right" valign="top"><a id="a0e6cdd749083398f532e2e2e3e22d544"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>radius_max_</b></td></tr>
<tr class="separator:a0e6cdd749083398f532e2e2e3e22d544"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab89218101a313d2aa8adcaf6991f73b"><td class="memItemLeft" align="right" valign="top"><a id="aab89218101a313d2aa8adcaf6991f73b"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#aab89218101a313d2aa8adcaf6991f73b">samples_radius_</a></td></tr>
<tr class="memdesc:aab89218101a313d2aa8adcaf6991f73b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum distance of subsequent samples from the first (radius search) <br /></td></tr>
<tr class="separator:aab89218101a313d2aa8adcaf6991f73b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b939f4747b5d6e12b03148a680380c3"><td class="memItemLeft" align="right" valign="top"><a id="a4b939f4747b5d6e12b03148a680380c3"></a>
SearchPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a4b939f4747b5d6e12b03148a680380c3">samples_radius_search_</a></td></tr>
<tr class="memdesc:a4b939f4747b5d6e12b03148a680380c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The search object for picking subsequent samples using radius search <br /></td></tr>
<tr class="separator:a4b939f4747b5d6e12b03148a680380c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b8317cdaac5ccc14e822135d4e97dc1"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a></td></tr>
<tr class="separator:a9b8317cdaac5ccc14e822135d4e97dc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73e9fb74bbe6ba122781c42913618756"><td class="memItemLeft" align="right" valign="top"><a id="a73e9fb74bbe6ba122781c42913618756"></a>
boost::mt19937&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a></td></tr>
<tr class="memdesc:a73e9fb74bbe6ba122781c42913618756"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boost-based random number generator algorithm. <br /></td></tr>
<tr class="separator:a73e9fb74bbe6ba122781c42913618756"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81041dab94f5b0a5644697a12c4b9351"><td class="memItemLeft" align="right" valign="top"><a id="a81041dab94f5b0a5644697a12c4b9351"></a>
boost::shared_ptr&lt; boost::uniform_int&lt;&gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a81041dab94f5b0a5644697a12c4b9351">rng_dist_</a></td></tr>
<tr class="memdesc:a81041dab94f5b0a5644697a12c4b9351"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boost-based random number generator distribution. <br /></td></tr>
<tr class="separator:a81041dab94f5b0a5644697a12c4b9351"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c57e94b06912d8bbf472667ba9940db"><td class="memItemLeft" align="right" valign="top"><a id="a7c57e94b06912d8bbf472667ba9940db"></a>
boost::shared_ptr&lt; boost::variate_generator&lt; boost::mt19937 &amp;, boost::uniform_int&lt;&gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a7c57e94b06912d8bbf472667ba9940db">rng_gen_</a></td></tr>
<tr class="memdesc:a7c57e94b06912d8bbf472667ba9940db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boost-based random number generator. <br /></td></tr>
<tr class="separator:a7c57e94b06912d8bbf472667ba9940db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af526982856012edcfa78ffc0fd589f97"><td class="memItemLeft" align="right" valign="top"><a id="af526982856012edcfa78ffc0fd589f97"></a>
std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#af526982856012edcfa78ffc0fd589f97">error_sqr_dists_</a></td></tr>
<tr class="memdesc:af526982856012edcfa78ffc0fd589f97"><td class="mdescLeft">&#160;</td><td class="mdescRight">A vector holding the distances to the computed model. Used internally. <br /></td></tr>
<tr class="separator:af526982856012edcfa78ffc0fd589f97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64854cad238a0583093c446dc295f245"><td class="memItemLeft" align="right" valign="top"><a id="a64854cad238a0583093c446dc295f245"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a64854cad238a0583093c446dc295f245">sample_size_</a></td></tr>
<tr class="memdesc:a64854cad238a0583093c446dc295f245"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of a sample from which the model is computed. Every subclass should initialize this appropriately. <br /></td></tr>
<tr class="separator:a64854cad238a0583093c446dc295f245"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7f51bf1c63fcfb05694d0f19c2f7dc3"><td class="memItemLeft" align="right" valign="top"><a id="ab7f51bf1c63fcfb05694d0f19c2f7dc3"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#ab7f51bf1c63fcfb05694d0f19c2f7dc3">model_size_</a></td></tr>
<tr class="memdesc:ab7f51bf1c63fcfb05694d0f19c2f7dc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of coefficients in the model. Every subclass should initialize this appropriately. <br /></td></tr>
<tr class="separator:ab7f51bf1c63fcfb05694d0f19c2f7dc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
静态 Protected 属性</h2></td></tr>
<tr class="memitem:a19d4a467b5c0cd6267e6282ac0a2cf8c"><td class="memItemLeft" align="right" valign="top">static const unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_sample_consensus_model.html#a19d4a467b5c0cd6267e6282ac0a2cf8c">max_sample_checks_</a> = 1000</td></tr>
<tr class="separator:a19d4a467b5c0cd6267e6282ac0a2cf8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
友元</h2></td></tr>
<tr class="memitem:aae240ae44d58a110da9e06af61cad56d"><td class="memItemLeft" align="right" valign="top"><a id="aae240ae44d58a110da9e06af61cad56d"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>ProgressiveSampleConsensus&lt; PointT &gt;</b></td></tr>
<tr class="separator:aae240ae44d58a110da9e06af61cad56d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointT&gt;<br />
class pcl::SampleConsensusModel&lt; PointT &gt;</h3>

<p><b><a class="el" href="classpcl_1_1_sample_consensus_model.html" title="SampleConsensusModel represents the base model class. All sample consensus models must inherit from t...">SampleConsensusModel</a></b> represents the base model class. All sample consensus models must inherit from this class. </p>
<dl class="section author"><dt>作者</dt><dd>Radu B. Rusu </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="a910f3f0d75a6c2bf8bc4a9c43df825ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a910f3f0d75a6c2bf8bc4a9c43df825ce">&#9670;&nbsp;</a></span>SampleConsensusModel() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1_sample_consensus_model.html">SampleConsensusModel</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>random</em> = <code>false</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Empty constructor for base <a class="el" href="classpcl_1_1_sample_consensus_model.html" title="SampleConsensusModel represents the base model class. All sample consensus models must inherit from t...">SampleConsensusModel</a>. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">random</td><td>if true set the random seed to the current time, else set to 12345 (default: false) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        : <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7bffa6777a49f1c461ee8e0960bbec01">input_</a> ()</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a> ()</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a3e4708339fa0bc73aac513ddb1891a18">radius_min_</a> (-std::numeric_limits&lt;double&gt;::max ())</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        , radius_max_ (std::numeric_limits&lt;double&gt;::max ())</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#aab89218101a313d2aa8adcaf6991f73b">samples_radius_</a> (0.)</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a4b939f4747b5d6e12b03148a680380c3">samples_radius_search_</a> ()</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a> ()</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a> ()</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a81041dab94f5b0a5644697a12c4b9351">rng_dist_</a> (<span class="keyword">new</span> boost::uniform_int&lt;&gt; (0, std::numeric_limits&lt;int&gt;::max ()))</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7c57e94b06912d8bbf472667ba9940db">rng_gen_</a> ()</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#af526982856012edcfa78ffc0fd589f97">error_sqr_dists_</a> ()</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;      {</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        <span class="comment">// Create a random number generator object</span></div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordflow">if</span> (random)</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;          <a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a>.seed (<span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span> (std::time(0)));</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;          <a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a>.seed (12345u);</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7c57e94b06912d8bbf472667ba9940db">rng_gen_</a>.reset (<span class="keyword">new</span> boost::variate_generator&lt;boost::mt19937&amp;, boost::uniform_int&lt;&gt; &gt; (<a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a>, *<a class="code" href="classpcl_1_1_sample_consensus_model.html#a81041dab94f5b0a5644697a12c4b9351">rng_dist_</a>)); </div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;       }</div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a3e4708339fa0bc73aac513ddb1891a18"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a3e4708339fa0bc73aac513ddb1891a18">pcl::SampleConsensusModel::radius_min_</a></div><div class="ttdeci">double radius_min_</div><div class="ttdoc">The minimum and maximum radius limits for the model. Applicable to all models that estimate a radius.</div><div class="ttdef"><b>Definition:</b> sac_model.h:548</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a4b939f4747b5d6e12b03148a680380c3"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a4b939f4747b5d6e12b03148a680380c3">pcl::SampleConsensusModel::samples_radius_search_</a></div><div class="ttdeci">SearchPtr samples_radius_search_</div><div class="ttdoc">The search object for picking subsequent samples using radius search</div><div class="ttdef"><b>Definition:</b> sac_model.h:554</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a73e9fb74bbe6ba122781c42913618756"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">pcl::SampleConsensusModel::rng_alg_</a></div><div class="ttdeci">boost::mt19937 rng_alg_</div><div class="ttdoc">Boost-based random number generator algorithm.</div><div class="ttdef"><b>Definition:</b> sac_model.h:560</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a7bffa6777a49f1c461ee8e0960bbec01"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a7bffa6777a49f1c461ee8e0960bbec01">pcl::SampleConsensusModel::input_</a></div><div class="ttdeci">PointCloudConstPtr input_</div><div class="ttdoc">A boost shared pointer to the point cloud data array.</div><div class="ttdef"><b>Definition:</b> sac_model.h:537</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a7c57e94b06912d8bbf472667ba9940db"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a7c57e94b06912d8bbf472667ba9940db">pcl::SampleConsensusModel::rng_gen_</a></div><div class="ttdeci">boost::shared_ptr&lt; boost::variate_generator&lt; boost::mt19937 &amp;, boost::uniform_int&lt;&gt; &gt; &gt; rng_gen_</div><div class="ttdoc">Boost-based random number generator.</div><div class="ttdef"><b>Definition:</b> sac_model.h:566</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a81041dab94f5b0a5644697a12c4b9351"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a81041dab94f5b0a5644697a12c4b9351">pcl::SampleConsensusModel::rng_dist_</a></div><div class="ttdeci">boost::shared_ptr&lt; boost::uniform_int&lt;&gt; &gt; rng_dist_</div><div class="ttdoc">Boost-based random number generator distribution.</div><div class="ttdef"><b>Definition:</b> sac_model.h:563</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a9b8317cdaac5ccc14e822135d4e97dc1"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">pcl::SampleConsensusModel::shuffled_indices_</a></div><div class="ttdeci">std::vector&lt; int &gt; shuffled_indices_</div><div class="ttdef"><b>Definition:</b> sac_model.h:557</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_aab89218101a313d2aa8adcaf6991f73b"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#aab89218101a313d2aa8adcaf6991f73b">pcl::SampleConsensusModel::samples_radius_</a></div><div class="ttdeci">double samples_radius_</div><div class="ttdoc">The maximum distance of subsequent samples from the first (radius search)</div><div class="ttdef"><b>Definition:</b> sac_model.h:551</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_ad45adf0e36f396a908c2ba08cfdd7a41"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">pcl::SampleConsensusModel::indices_</a></div><div class="ttdeci">boost::shared_ptr&lt; std::vector&lt; int &gt; &gt; indices_</div><div class="ttdoc">A pointer to the vector of point indices to use.</div><div class="ttdef"><b>Definition:</b> sac_model.h:540</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_af526982856012edcfa78ffc0fd589f97"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#af526982856012edcfa78ffc0fd589f97">pcl::SampleConsensusModel::error_sqr_dists_</a></div><div class="ttdeci">std::vector&lt; double &gt; error_sqr_dists_</div><div class="ttdoc">A vector holding the distances to the computed model. Used internally.</div><div class="ttdef"><b>Definition:</b> sac_model.h:569</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aa99d99ea0457237eca3b2f8e9a39022b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa99d99ea0457237eca3b2f8e9a39022b">&#9670;&nbsp;</a></span>SampleConsensusModel() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1_sample_consensus_model.html">SampleConsensusModel</a> </td>
          <td>(</td>
          <td class="paramtype">const PointCloudConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>random</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor for base <a class="el" href="classpcl_1_1_sample_consensus_model.html" title="SampleConsensusModel represents the base model class. All sample consensus models must inherit from t...">SampleConsensusModel</a>. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">random</td><td>if true set the random seed to the current time, else set to 12345 (default: false) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        : <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7bffa6777a49f1c461ee8e0960bbec01">input_</a> ()</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a> ()</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a3e4708339fa0bc73aac513ddb1891a18">radius_min_</a> (-std::numeric_limits&lt;double&gt;::max ())</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        , radius_max_ (std::numeric_limits&lt;double&gt;::max ())</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#aab89218101a313d2aa8adcaf6991f73b">samples_radius_</a> (0.)</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a4b939f4747b5d6e12b03148a680380c3">samples_radius_search_</a> ()</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a> ()</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a> ()</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a81041dab94f5b0a5644697a12c4b9351">rng_dist_</a> (<span class="keyword">new</span> boost::uniform_int&lt;&gt; (0, std::numeric_limits&lt;int&gt;::max ()))</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7c57e94b06912d8bbf472667ba9940db">rng_gen_</a> ()</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#af526982856012edcfa78ffc0fd589f97">error_sqr_dists_</a> ()</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;      {</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="keywordflow">if</span> (random)</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;          <a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a>.seed (<span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span> (std::time (0)));</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;          <a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a>.seed (12345u);</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="comment">// Sets the input cloud and creates a vector of &quot;fake&quot; indices</span></div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#aae3b06fbee5243f926d40f8115bd406c">setInputCloud</a> (cloud);</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;        <span class="comment">// Create a random number generator object</span></div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7c57e94b06912d8bbf472667ba9940db">rng_gen_</a>.reset (<span class="keyword">new</span> boost::variate_generator&lt;boost::mt19937&amp;, boost::uniform_int&lt;&gt; &gt; (<a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a>, *<a class="code" href="classpcl_1_1_sample_consensus_model.html#a81041dab94f5b0a5644697a12c4b9351">rng_dist_</a>)); </div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_aae3b06fbee5243f926d40f8115bd406c"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#aae3b06fbee5243f926d40f8115bd406c">pcl::SampleConsensusModel::setInputCloud</a></div><div class="ttdeci">virtual void setInputCloud(const PointCloudConstPtr &amp;cloud)</div><div class="ttdoc">Provide a pointer to the input dataset</div><div class="ttdef"><b>Definition:</b> sac_model.h:304</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a3fd6d364bc52a69c6aff54691975b7aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3fd6d364bc52a69c6aff54691975b7aa">&#9670;&nbsp;</a></span>SampleConsensusModel() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1_sample_consensus_model.html">SampleConsensusModel</a> </td>
          <td>(</td>
          <td class="paramtype">const PointCloudConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>random</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor for base <a class="el" href="classpcl_1_1_sample_consensus_model.html" title="SampleConsensusModel represents the base model class. All sample consensus models must inherit from t...">SampleConsensusModel</a>. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the input point cloud dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">indices</td><td>a vector of point indices to be used from <em>cloud</em> </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">random</td><td>if true set the random seed to the current time, else set to 12345 (default: false) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        : <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7bffa6777a49f1c461ee8e0960bbec01">input_</a> (cloud)</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a> (<span class="keyword">new</span> std::vector&lt;int&gt; (indices))</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a3e4708339fa0bc73aac513ddb1891a18">radius_min_</a> (-std::numeric_limits&lt;double&gt;::max ())</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        , radius_max_ (std::numeric_limits&lt;double&gt;::max ())</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#aab89218101a313d2aa8adcaf6991f73b">samples_radius_</a> (0.)</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a4b939f4747b5d6e12b03148a680380c3">samples_radius_search_</a> ()</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a> ()</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a> ()</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a81041dab94f5b0a5644697a12c4b9351">rng_dist_</a> (<span class="keyword">new</span> boost::uniform_int&lt;&gt; (0, std::numeric_limits&lt;int&gt;::max ()))</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7c57e94b06912d8bbf472667ba9940db">rng_gen_</a> ()</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        , <a class="code" href="classpcl_1_1_sample_consensus_model.html#af526982856012edcfa78ffc0fd589f97">error_sqr_dists_</a> ()</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;      {</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <span class="keywordflow">if</span> (random)</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;          <a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a>.seed (<span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span><span class="keyword">&gt;</span> (std::time(0)));</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;          <a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a>.seed (12345u);</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>-&gt;size () &gt; <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7bffa6777a49f1c461ee8e0960bbec01">input_</a>-&gt;points.size ())</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        {</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;          PCL_ERROR (<span class="stringliteral">&quot;[pcl::SampleConsensusModel] Invalid index vector given with size %lu while the input PointCloud has size %lu!\n&quot;</span>, <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>-&gt;size (), <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7bffa6777a49f1c461ee8e0960bbec01">input_</a>-&gt;points.size ());</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;          <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>-&gt;clear ();</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        }</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a> = *<a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="comment">// Create a random number generator object</span></div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7c57e94b06912d8bbf472667ba9940db">rng_gen_</a>.reset (<span class="keyword">new</span> boost::variate_generator&lt;boost::mt19937&amp;, boost::uniform_int&lt;&gt; &gt; (<a class="code" href="classpcl_1_1_sample_consensus_model.html#a73e9fb74bbe6ba122781c42913618756">rng_alg_</a>, *<a class="code" href="classpcl_1_1_sample_consensus_model.html#a81041dab94f5b0a5644697a12c4b9351">rng_dist_</a>)); </div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;       };</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="a76c5d4484f1c08a9a15f03e497296cfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76c5d4484f1c08a9a15f03e497296cfe">&#9670;&nbsp;</a></span>computeModelCoefficients()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::computeModelCoefficients </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>samples</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::VectorXf &amp;&#160;</td>
          <td class="paramname"><em>model_coefficients</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check whether the given index samples can form a valid model, compute the model coefficients from these samples and store them in model_coefficients. Pure virtual. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">samples</td><td>the point indices found as possible good candidates for creating a valid model </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">model_coefficients</td><td>the computed model coefficients </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="classpcl_1_1_sample_consensus_model_stick.html#af0c383ee2571703dbbc22cf20ba7256e">pcl::SampleConsensusModelStick&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#ad4766e4506ab02fbaa6ceb3c45246c4d">pcl::SampleConsensusModelSphere&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#ad4766e4506ab02fbaa6ceb3c45246c4d">pcl::SampleConsensusModelSphere&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration.html#ad4a1df4ab4946764ff319e9cfbb1806b">pcl::SampleConsensusModelRegistration&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_plane.html#ab8c1ca289b6b38d9e00395ced6004f6a">pcl::SampleConsensusModelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_line.html#a2c09de6c3d95758f25c1942ac7a050f9">pcl::SampleConsensusModelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#a06b4b8784b244ffb5571a61b23c1e56c">pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#a06b4b8784b244ffb5571a61b23c1e56c">pcl::SampleConsensusModelCylinder&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#ad502be41f8f80460331c06fb061eaf87">pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#ad502be41f8f80460331c06fb061eaf87">pcl::SampleConsensusModelCone&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a063bca2bcf0f551d763ef091a55058d9">pcl::SampleConsensusModelCircle3D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a063bca2bcf0f551d763ef091a55058d9">pcl::SampleConsensusModelCircle3D&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#ab6685359983f7e980f345f92d8b4883d">pcl::SampleConsensusModelCircle2D&lt; PointT &gt;</a> , 以及 <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#ab6685359983f7e980f345f92d8b4883d">pcl::SampleConsensusModelCircle2D&lt; pcl::PointXYZRGBA &gt;</a> 内被实现.</p>

</div>
</div>
<a id="a2ac96856f60671f5d56be00a174963a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ac96856f60671f5d56be00a174963a8">&#9670;&nbsp;</a></span>computeVariance()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::computeVariance </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>error_sqr_dists</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute the variance of the errors to the model. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">error_sqr_dists</td><td>a vector holding the distances </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;      {</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        std::vector&lt;double&gt; dists (error_sqr_dists);</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">size_t</span> medIdx = dists.size () &gt;&gt; 1;</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        std::nth_element (dists.begin (), dists.begin () + medIdx, dists.end ());</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        <span class="keywordtype">double</span> median_error_sqr = dists[medIdx];</div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;        <span class="keywordflow">return</span> (2.1981 * median_error_sqr);</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4257edca979112fb2a7b5dfc4b824ca2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4257edca979112fb2a7b5dfc4b824ca2">&#9670;&nbsp;</a></span>countWithinDistance()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual int <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::countWithinDistance </td>
          <td>(</td>
          <td class="paramtype">const Eigen::VectorXf &amp;&#160;</td>
          <td class="paramname"><em>model_coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>threshold</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Count all the points which respect the given model coefficients as inliers. Pure virtual. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">model_coefficients</td><td>the coefficients of a model that we need to compute distances to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">threshold</td><td>a maximum admissible distance threshold for determining the inliers from the outliers </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>the resultant number of inliers </dd></dl>

<p>在 <a class="el" href="classpcl_1_1_sample_consensus_model_stick.html#aa4b5447ed86e44c523cef6db61edab2b">pcl::SampleConsensusModelStick&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a9ffa1590305fad015963b9ebd731957e">pcl::SampleConsensusModelSphere&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a9ffa1590305fad015963b9ebd731957e">pcl::SampleConsensusModelSphere&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration2_d.html#a5227da8c68e992583cbcee52a6363951">pcl::SampleConsensusModelRegistration2D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration.html#a2e72986f3fed3615b17207af96489870">pcl::SampleConsensusModelRegistration&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_plane.html#a31f725415cba23e71d95e4fa9c70b7f9">pcl::SampleConsensusModelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_perpendicular_plane.html#afecc700367241707f7b1db8ab11b37f8">pcl::SampleConsensusModelPerpendicularPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_parallel_plane.html#a2accc4d5a66956b799a6796ed628a7a4">pcl::SampleConsensusModelParallelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_parallel_line.html#af0ead11670ea3b23befc3f6d8de20191">pcl::SampleConsensusModelParallelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_normal_sphere.html#aa6a8777c55ad7506c18617ebc5239f7f">pcl::SampleConsensusModelNormalSphere&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_normal_plane.html#a97823e42845ee811261d929ecc272005">pcl::SampleConsensusModelNormalPlane&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_line.html#a2885d3c4271f8cb8aed6ebc34c65d994">pcl::SampleConsensusModelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#a4aae3c84e0c58d4c0069e49b7fd774b1">pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#a4aae3c84e0c58d4c0069e49b7fd774b1">pcl::SampleConsensusModelCylinder&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a8f609a3ce21226534877cc7693c1f2a6">pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a8f609a3ce21226534877cc7693c1f2a6">pcl::SampleConsensusModelCone&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a5849003b832e646bfbf2d3b383352cbb">pcl::SampleConsensusModelCircle3D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a5849003b832e646bfbf2d3b383352cbb">pcl::SampleConsensusModelCircle3D&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a7e26373285db512c49969e167debc332">pcl::SampleConsensusModelCircle2D&lt; PointT &gt;</a> , 以及 <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a7e26373285db512c49969e167debc332">pcl::SampleConsensusModelCircle2D&lt; pcl::PointXYZRGBA &gt;</a> 内被实现.</p>

</div>
</div>
<a id="ab36a50dd4848b902f2e7a75b29b78c76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab36a50dd4848b902f2e7a75b29b78c76">&#9670;&nbsp;</a></span>doSamplesVerifyModel()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::doSamplesVerifyModel </td>
          <td>(</td>
          <td class="paramtype">const std::set&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>indices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::VectorXf &amp;&#160;</td>
          <td class="paramname"><em>model_coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>threshold</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Verify whether a subset of indices verifies a given set of model coefficients. Pure virtual. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">indices</td><td>the data indices that need to be tested against the model </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">model_coefficients</td><td>the set of model coefficients </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">threshold</td><td>a maximum admissible distance threshold for determining the inliers from the outliers </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="classpcl_1_1_sample_consensus_model_stick.html#a15e1343723ef9de9f7aa40c362445b66">pcl::SampleConsensusModelStick&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a1092849a618dc5c81f3ee59c6f6e06bd">pcl::SampleConsensusModelSphere&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a1092849a618dc5c81f3ee59c6f6e06bd">pcl::SampleConsensusModelSphere&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_plane.html#a34ab4d472c46cf75e3cf7b3bec4346bd">pcl::SampleConsensusModelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_line.html#a46511a245836abd6d73fd924f2a4f285">pcl::SampleConsensusModelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#a9dbabcdf330f2cbb20780b9976e34cfc">pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#a9dbabcdf330f2cbb20780b9976e34cfc">pcl::SampleConsensusModelCylinder&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a74697a793857dc25f013f55b0fd2f4ba">pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a74697a793857dc25f013f55b0fd2f4ba">pcl::SampleConsensusModelCone&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#ad8697914180756e218f630dd51d08785">pcl::SampleConsensusModelCircle3D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#ad8697914180756e218f630dd51d08785">pcl::SampleConsensusModelCircle3D&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a07348889403a2da1e36c91329e902c36">pcl::SampleConsensusModelCircle2D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a07348889403a2da1e36c91329e902c36">pcl::SampleConsensusModelCircle2D&lt; pcl::PointXYZRGBA &gt;</a> , 以及 <a class="el" href="classpcl_1_1_sample_consensus_model_registration.html#a5e226a42afb080ffd0ea73d99ac6a333">pcl::SampleConsensusModelRegistration&lt; PointT &gt;</a> 内被实现.</p>

</div>
</div>
<a id="a2f687798633c8e702568aea8d68b2bec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f687798633c8e702568aea8d68b2bec">&#9670;&nbsp;</a></span>drawIndexSample()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::drawIndexSample </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Fills a sample array with random samples from the indices_ vector </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">sample</td><td>the set of indices of target_ to analyze </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;      {</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <span class="keywordtype">size_t</span> sample_size = sample.size ();</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        <span class="keywordtype">size_t</span> index_size = <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>.size ();</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; sample_size; ++i)</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;          <span class="comment">// The 1/(RAND_MAX+1.0) trick is when the random numbers are not uniformly distributed and for small modulo</span></div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;          <span class="comment">// elements, that does not matter (and nowadays, random number generators are good)</span></div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;          <span class="comment">//std::swap (shuffled_indices_[i], shuffled_indices_[i + (rand () % (index_size - i))]);</span></div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;          std::swap (<a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>[i], <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>[i + (<a class="code" href="classpcl_1_1_sample_consensus_model.html#ab8b77e6a4edb210c2ddaca923ac8470a">rnd</a> () % (index_size - i))]);</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        std::copy (<a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>.begin (), <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>.begin () + sample_size, sample.begin ());</div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_ab8b77e6a4edb210c2ddaca923ac8470a"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#ab8b77e6a4edb210c2ddaca923ac8470a">pcl::SampleConsensusModel::rnd</a></div><div class="ttdeci">int rnd()</div><div class="ttdoc">Boost-based random number generator.</div><div class="ttdef"><b>Definition:</b> sac_model.h:579</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a94696e418be704a4443b031ca18bc298"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a94696e418be704a4443b031ca18bc298">&#9670;&nbsp;</a></span>drawIndexSampleRadius()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::drawIndexSampleRadius </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Fills a sample array with one random sample from the indices_ vector and other random samples that are closer than samples_radius_ </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">sample</td><td>the set of indices of target_ to analyze </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;      {</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        <span class="keywordtype">size_t</span> sample_size = sample.size ();</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;        <span class="keywordtype">size_t</span> index_size = <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>.size ();</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160; </div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        std::swap (<a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>[0], <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>[0 + (<a class="code" href="classpcl_1_1_sample_consensus_model.html#ab8b77e6a4edb210c2ddaca923ac8470a">rnd</a> () % (index_size - 0))]);</div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        <span class="comment">//const PointT&amp; pt0 = (*input_)[shuffled_indices_[0]];</span></div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160; </div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        std::vector&lt;int&gt; indices;</div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;        std::vector&lt;float&gt; sqr_dists;</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160; </div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;        <span class="comment">// If indices have been set when the search object was constructed,</span></div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        <span class="comment">// radiusSearch() expects an index into the indices vector as its</span></div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <span class="comment">// first parameter. This can&#39;t be determined efficiently, so we use</span></div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        <span class="comment">// the point instead of the index.</span></div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;        <span class="comment">// Returned indices are converted automatically.</span></div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a4b939f4747b5d6e12b03148a680380c3">samples_radius_search_</a>-&gt;radiusSearch (<a class="code" href="classpcl_1_1_sample_consensus_model.html#a7bffa6777a49f1c461ee8e0960bbec01">input_</a>-&gt;at(<a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>[0]),</div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;                                              <a class="code" href="classpcl_1_1_sample_consensus_model.html#aab89218101a313d2aa8adcaf6991f73b">samples_radius_</a>, indices, sqr_dists );</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        <span class="keywordflow">if</span> (indices.size () &lt; sample_size - 1)</div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        {</div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;          <span class="comment">// radius search failed, make an invalid model</span></div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;          <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 1; i &lt; sample_size; ++i)</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;            <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>[i] = <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>[0];</div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;        }</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        {</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;          <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; sample_size-1; ++i)</div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;            std::swap (indices[i], indices[i + (<a class="code" href="classpcl_1_1_sample_consensus_model.html#ab8b77e6a4edb210c2ddaca923ac8470a">rnd</a> () % (indices.size () - i))]);</div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;          <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 1; i &lt; sample_size; ++i)</div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;            <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>[i] = indices[i-1];</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        }</div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160; </div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        std::copy (<a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>.begin (), <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a>.begin () + sample_size, sample.begin ());</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="adc4ab752a4819218988ff5429b5a3c06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc4ab752a4819218988ff5429b5a3c06">&#9670;&nbsp;</a></span>getDistancesToModel()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getDistancesToModel </td>
          <td>(</td>
          <td class="paramtype">const Eigen::VectorXf &amp;&#160;</td>
          <td class="paramname"><em>model_coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>distances</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute all distances from the cloud data to a given model. Pure virtual. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">model_coefficients</td><td>the coefficients of a model that we need to compute distances to </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">distances</td><td>the resultant estimated distances </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="classpcl_1_1_sample_consensus_model_stick.html#ae8d72ae11c5cddce625462b25babdd5c">pcl::SampleConsensusModelStick&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a1f0410588a37c54f59bcdb134e60271f">pcl::SampleConsensusModelSphere&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a1f0410588a37c54f59bcdb134e60271f">pcl::SampleConsensusModelSphere&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration2_d.html#a836d1502b81dcb2956b52e293d1a39db">pcl::SampleConsensusModelRegistration2D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration.html#a3d0349f226c9d12a0d3d551867265c0f">pcl::SampleConsensusModelRegistration&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_plane.html#a50387ca38d44d96d364cff901da7bd42">pcl::SampleConsensusModelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_perpendicular_plane.html#ab25eaa1ca8847c7604cda5f598baa026">pcl::SampleConsensusModelPerpendicularPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_parallel_plane.html#a168b1d73790f5c4fa3ddd31d9f4ad764">pcl::SampleConsensusModelParallelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_parallel_line.html#aba35bb7eb6ca7b019983bbddd8573fb4">pcl::SampleConsensusModelParallelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_normal_sphere.html#a6a0b93014b98287335034e2a9b7da715">pcl::SampleConsensusModelNormalSphere&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_normal_plane.html#ad084c665f423e894bd4531c02f38c5a0">pcl::SampleConsensusModelNormalPlane&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_line.html#a68b282649799eac370616e9ab124c970">pcl::SampleConsensusModelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#ad77dc34861d4026dca1d5d3b66ff40ee">pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#ad77dc34861d4026dca1d5d3b66ff40ee">pcl::SampleConsensusModelCylinder&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a8773a1700c154a4777d213e8c07e7bb1">pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a8773a1700c154a4777d213e8c07e7bb1">pcl::SampleConsensusModelCone&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a0283f02f14b3eb9eb5f687966fb3fe3a">pcl::SampleConsensusModelCircle3D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a0283f02f14b3eb9eb5f687966fb3fe3a">pcl::SampleConsensusModelCircle3D&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a7742e868378bddc6259858bc4b201c7e">pcl::SampleConsensusModelCircle2D&lt; PointT &gt;</a> , 以及 <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a7742e868378bddc6259858bc4b201c7e">pcl::SampleConsensusModelCircle2D&lt; pcl::PointXYZRGBA &gt;</a> 内被实现.</p>

</div>
</div>
<a id="acff95be7097cf723a598d3b28e828487"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acff95be7097cf723a598d3b28e828487">&#9670;&nbsp;</a></span>getRadiusLimits()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getRadiusLimits </td>
          <td>(</td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>min_radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>max_radius</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the minimum and maximum allowable radius limits for the model as set by the user. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">min_radius</td><td>the resultant minimum radius model </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">max_radius</td><td>the resultant maximum radius model </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;      {</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        min_radius = <a class="code" href="classpcl_1_1_sample_consensus_model.html#a3e4708339fa0bc73aac513ddb1891a18">radius_min_</a>;</div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        max_radius = radius_max_;</div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2ae178816daf4f2c7af3a19d12324b77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ae178816daf4f2c7af3a19d12324b77">&#9670;&nbsp;</a></span>getSamples()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getSamples </td>
          <td>(</td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>iterations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>samples</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get a set of random data samples and return them as point indices. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">iterations</td><td>the internal number of iterations used by SAC methods </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">samples</td><td>the resultant model samples </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;      {</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;        <span class="comment">// We&#39;re assuming that indices_ have already been set in the constructor</span></div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>-&gt;size () &lt; <a class="code" href="classpcl_1_1_sample_consensus_model.html#aff175b4323080fe1a3ca98a76ca4da46">getSampleSize</a> ())</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        {</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;          PCL_ERROR (<span class="stringliteral">&quot;[pcl::SampleConsensusModel::getSamples] Can not select %lu unique points out of %lu!\n&quot;</span>,</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;                     samples.size (), <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>-&gt;size ());</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;          <span class="comment">// one of these will make it stop :)</span></div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;          samples.clear ();</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;          iterations = INT_MAX - 1;</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;          <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        }</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        <span class="comment">// Get a second point which is different than the first</span></div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        samples.resize (<a class="code" href="classpcl_1_1_sample_consensus_model.html#aff175b4323080fe1a3ca98a76ca4da46">getSampleSize</a> ());</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> iter = 0; iter &lt; <a class="code" href="classpcl_1_1_sample_consensus_model.html#a19d4a467b5c0cd6267e6282ac0a2cf8c">max_sample_checks_</a>; ++iter)</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        {</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;          <span class="comment">// Choose the random indices</span></div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;          <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_sample_consensus_model.html#aab89218101a313d2aa8adcaf6991f73b">samples_radius_</a> &lt; std::numeric_limits&lt;double&gt;::epsilon ())</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;              <a class="code" href="classpcl_1_1_sample_consensus_model.html#a2f687798633c8e702568aea8d68b2bec">SampleConsensusModel&lt;PointT&gt;::drawIndexSample</a> (samples);</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;          <span class="keywordflow">else</span></div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;              <a class="code" href="classpcl_1_1_sample_consensus_model.html#a94696e418be704a4443b031ca18bc298">SampleConsensusModel&lt;PointT&gt;::drawIndexSampleRadius</a> (samples);</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;          <span class="comment">// If it&#39;s a good sample, stop here</span></div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;          <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_sample_consensus_model.html#ac38e3dc90b66bacc563605a31901ac55">isSampleGood</a> (samples))</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;          {</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            PCL_DEBUG (<span class="stringliteral">&quot;[pcl::SampleConsensusModel::getSamples] Selected %lu samples.\n&quot;</span>, samples.size ());</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;            <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;          }</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        }</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        PCL_DEBUG (<span class="stringliteral">&quot;[pcl::SampleConsensusModel::getSamples] WARNING: Could not select %d sample points in %d iterations!\n&quot;</span>, <a class="code" href="classpcl_1_1_sample_consensus_model.html#aff175b4323080fe1a3ca98a76ca4da46">getSampleSize</a> (), <a class="code" href="classpcl_1_1_sample_consensus_model.html#a19d4a467b5c0cd6267e6282ac0a2cf8c">max_sample_checks_</a>);</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        samples.clear ();</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a19d4a467b5c0cd6267e6282ac0a2cf8c"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a19d4a467b5c0cd6267e6282ac0a2cf8c">pcl::SampleConsensusModel::max_sample_checks_</a></div><div class="ttdeci">static const unsigned int max_sample_checks_</div><div class="ttdef"><b>Definition:</b> sac_model.h:543</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a2f687798633c8e702568aea8d68b2bec"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a2f687798633c8e702568aea8d68b2bec">pcl::SampleConsensusModel::drawIndexSample</a></div><div class="ttdeci">void drawIndexSample(std::vector&lt; int &gt; &amp;sample)</div><div class="ttdoc">Fills a sample array with random samples from the indices_ vector</div><div class="ttdef"><b>Definition:</b> sac_model.h:455</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a94696e418be704a4443b031ca18bc298"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a94696e418be704a4443b031ca18bc298">pcl::SampleConsensusModel::drawIndexSampleRadius</a></div><div class="ttdeci">void drawIndexSampleRadius(std::vector&lt; int &gt; &amp;sample)</div><div class="ttdoc">Fills a sample array with one random sample from the indices_ vector and other random samples that ar...</div><div class="ttdef"><b>Definition:</b> sac_model.h:472</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_ac38e3dc90b66bacc563605a31901ac55"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#ac38e3dc90b66bacc563605a31901ac55">pcl::SampleConsensusModel::isSampleGood</a></div><div class="ttdeci">virtual bool isSampleGood(const std::vector&lt; int &gt; &amp;samples) const =0</div><div class="ttdoc">Check if a sample of indices results in a good sample of points indices. Pure virtual.</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_aff175b4323080fe1a3ca98a76ca4da46"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#aff175b4323080fe1a3ca98a76ca4da46">pcl::SampleConsensusModel::getSampleSize</a></div><div class="ttdeci">unsigned int getSampleSize() const</div><div class="ttdoc">Return the size of a sample from which the model is computed.</div><div class="ttdef"><b>Definition:</b> sac_model.h:360</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a1aebacea0f2bdd7529f48f739f11c6c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1aebacea0f2bdd7529f48f739f11c6c0">&#9670;&nbsp;</a></span>getSamplesMaxDist()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getSamplesMaxDist </td>
          <td>(</td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>radius</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get maximum distance allowed when drawing random samples </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">radius</td><td>the maximum distance (L2 norm) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;      {</div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;        radius = <a class="code" href="classpcl_1_1_sample_consensus_model.html#aab89218101a313d2aa8adcaf6991f73b">samples_radius_</a>;</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad22a9cfdd9cf08bcf85ef1e88b62b9d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad22a9cfdd9cf08bcf85ef1e88b62b9d2">&#9670;&nbsp;</a></span>isModelValid()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::isModelValid </td>
          <td>(</td>
          <td class="paramtype">const Eigen::VectorXf &amp;&#160;</td>
          <td class="paramname"><em>model_coefficients</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check whether a model is valid given the user constraints. </p>
<p>Default implementation verifies that the number of coefficients in the supplied model is as expected for this SAC model type. Specific SAC models should extend this function by checking the user constraints (if any).</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">model_coefficients</td><td>the set of model coefficients </td></tr>
  </table>
  </dd>
</dl>

<p>被 <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a0a193f4d4ca8b49a72c3a413bc1e06ad">pcl::SampleConsensusModelSphere&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a0a193f4d4ca8b49a72c3a413bc1e06ad">pcl::SampleConsensusModelSphere&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_perpendicular_plane.html#af8b7b767bf4b91651a456dc337325ee1">pcl::SampleConsensusModelPerpendicularPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_parallel_plane.html#a18bb2202e29c2a741892714944675826">pcl::SampleConsensusModelParallelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_parallel_line.html#a764e15f742e8cd40199039b39fc9f802">pcl::SampleConsensusModelParallelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_normal_sphere.html#a142a2daa33b84dfa8386eced5e154d64">pcl::SampleConsensusModelNormalSphere&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_normal_parallel_plane.html#aa485784ee2a5d0c9f8a4f53a54564a7f">pcl::SampleConsensusModelNormalParallelPlane&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#acb3a0a9830cc0797ba664c8fc5627d7b">pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#acb3a0a9830cc0797ba664c8fc5627d7b">pcl::SampleConsensusModelCylinder&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a2408f0bf872b6b57cd91f842c0f0b7bb">pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a2408f0bf872b6b57cd91f842c0f0b7bb">pcl::SampleConsensusModelCone&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a2b7f3e808912a8a031ea5f38c5f71212">pcl::SampleConsensusModelCircle3D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a2b7f3e808912a8a031ea5f38c5f71212">pcl::SampleConsensusModelCircle3D&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#ad90406f54cd3e1ec5ab903a40728522f">pcl::SampleConsensusModelCircle2D&lt; PointT &gt;</a> , 以及 <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#ad90406f54cd3e1ec5ab903a40728522f">pcl::SampleConsensusModelCircle2D&lt; pcl::PointXYZRGBA &gt;</a> 重载.</p>
<div class="fragment"><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;      {</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        <span class="keywordflow">if</span> (model_coefficients.size () != <a class="code" href="classpcl_1_1_sample_consensus_model.html#ab7f51bf1c63fcfb05694d0f19c2f7dc3">model_size_</a>)</div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;        {</div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;          PCL_ERROR (<span class="stringliteral">&quot;[pcl::%s::isModelValid] Invalid number of model coefficients given (%lu)!\n&quot;</span>, <a class="code" href="classpcl_1_1_sample_consensus_model.html#a490884cb22bfa92325111bd5be0bbe96">getClassName</a> ().c_str (), model_coefficients.size ());</div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;          <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;        }</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_a490884cb22bfa92325111bd5be0bbe96"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#a490884cb22bfa92325111bd5be0bbe96">pcl::SampleConsensusModel::getClassName</a></div><div class="ttdeci">const std::string &amp; getClassName() const</div><div class="ttdoc">Get a string representation of the name of this class.</div><div class="ttdef"><b>Definition:</b> sac_model.h:353</div></div>
<div class="ttc" id="aclasspcl_1_1_sample_consensus_model_html_ab7f51bf1c63fcfb05694d0f19c2f7dc3"><div class="ttname"><a href="classpcl_1_1_sample_consensus_model.html#ab7f51bf1c63fcfb05694d0f19c2f7dc3">pcl::SampleConsensusModel::model_size_</a></div><div class="ttdeci">unsigned int model_size_</div><div class="ttdoc">The number of coefficients in the model. Every subclass should initialize this appropriately.</div><div class="ttdef"><b>Definition:</b> sac_model.h:575</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ac38e3dc90b66bacc563605a31901ac55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac38e3dc90b66bacc563605a31901ac55">&#9670;&nbsp;</a></span>isSampleGood()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::isSampleGood </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>samples</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if a sample of indices results in a good sample of points indices. Pure virtual. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">samples</td><td>the resultant index samples </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="classpcl_1_1_sample_consensus_model_stick.html#a91e83e175b1d8e99379551924908391c">pcl::SampleConsensusModelStick&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#aa1fd67caaa8ca25ef0153526f35ea0f0">pcl::SampleConsensusModelSphere&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#aa1fd67caaa8ca25ef0153526f35ea0f0">pcl::SampleConsensusModelSphere&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration2_d.html#aafc250cae94170fa80f26207bb6a7fa0">pcl::SampleConsensusModelRegistration2D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration.html#a49852311cb0ea429988358e556d42536">pcl::SampleConsensusModelRegistration&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_plane.html#a1f67878a1448e7cc00816e8db7eddc3b">pcl::SampleConsensusModelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_line.html#aafc02bea3d135d035c3304ddb7bf694b">pcl::SampleConsensusModelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#abc95587fff18b6a0011168ec57acadb1">pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#abc95587fff18b6a0011168ec57acadb1">pcl::SampleConsensusModelCylinder&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a5ec03fd5d8b82ee2d986c2c86e201514">pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a5ec03fd5d8b82ee2d986c2c86e201514">pcl::SampleConsensusModelCone&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#aafde934feae347b649212ba85b10e25d">pcl::SampleConsensusModelCircle3D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#aafde934feae347b649212ba85b10e25d">pcl::SampleConsensusModelCircle3D&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#ae663e8eb62ac1fb1c45dd5037d23ba69">pcl::SampleConsensusModelCircle2D&lt; PointT &gt;</a> , 以及 <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#ae663e8eb62ac1fb1c45dd5037d23ba69">pcl::SampleConsensusModelCircle2D&lt; pcl::PointXYZRGBA &gt;</a> 内被实现.</p>

</div>
</div>
<a id="a667767897fbfe615aeeb9eca8dd1b8c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a667767897fbfe615aeeb9eca8dd1b8c6">&#9670;&nbsp;</a></span>optimizeModelCoefficients()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::optimizeModelCoefficients </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>inliers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::VectorXf &amp;&#160;</td>
          <td class="paramname"><em>model_coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::VectorXf &amp;&#160;</td>
          <td class="paramname"><em>optimized_coefficients</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Recompute the model coefficients using the given inlier set and return them to the user. Pure virtual. </p>
<dl class="section note"><dt>注解</dt><dd>: these are the coefficients of the model after refinement (e.g., after a least-squares optimization)</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">inliers</td><td>the data inliers supporting the model </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">model_coefficients</td><td>the initial guess for the model coefficients </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">optimized_coefficients</td><td>the resultant recomputed coefficients after non-linear optimization </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="classpcl_1_1_sample_consensus_model_stick.html#a6b84ec28f2362beeea2d18d61d0f5e41">pcl::SampleConsensusModelStick&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#ab073f9b221725dd02cda6c767630cf01">pcl::SampleConsensusModelSphere&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#ab073f9b221725dd02cda6c767630cf01">pcl::SampleConsensusModelSphere&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration.html#a1d997826c1974e6aebfad136f7993c56">pcl::SampleConsensusModelRegistration&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_plane.html#a7fe6c9952d5dae0d7366a2fe3be37dd9">pcl::SampleConsensusModelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_line.html#ad29efa5e1fc75c814612f5c4926233ef">pcl::SampleConsensusModelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#a9c39a2e6dbf1607e946ef034a56d5a3a">pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#a9c39a2e6dbf1607e946ef034a56d5a3a">pcl::SampleConsensusModelCylinder&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a960fc281aa97d9e05fa69080e72cd800">pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a960fc281aa97d9e05fa69080e72cd800">pcl::SampleConsensusModelCone&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a33c948b8e2355608926a8a1f80f29042">pcl::SampleConsensusModelCircle3D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a33c948b8e2355608926a8a1f80f29042">pcl::SampleConsensusModelCircle3D&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a7510c705f8428eb221a24046346e9075">pcl::SampleConsensusModelCircle2D&lt; PointT &gt;</a> , 以及 <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a7510c705f8428eb221a24046346e9075">pcl::SampleConsensusModelCircle2D&lt; pcl::PointXYZRGBA &gt;</a> 内被实现.</p>

</div>
</div>
<a id="a34c480d48be740e6085e8ba59c7293ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34c480d48be740e6085e8ba59c7293ed">&#9670;&nbsp;</a></span>projectPoints()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::projectPoints </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>inliers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::VectorXf &amp;&#160;</td>
          <td class="paramname"><em>model_coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &amp;&#160;</td>
          <td class="paramname"><em>projected_points</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>copy_data_fields</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Create a new point cloud with inliers projected onto the model. Pure virtual. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">inliers</td><td>the data inliers that we want to project on the model </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">model_coefficients</td><td>the coefficients of a model </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">projected_points</td><td>the resultant projected points </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">copy_data_fields</td><td>set to true (default) if we want the <em>projected_points</em> cloud to be an exact copy of the input dataset minus the point projections on the plane model </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="classpcl_1_1_sample_consensus_model_stick.html#a3bf93e9a9269f33f39701e564b14150a">pcl::SampleConsensusModelStick&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#af7f6b178e95ea32daa18fd032d5ea0ac">pcl::SampleConsensusModelSphere&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_plane.html#af440c5df78301786addbb085036aa447">pcl::SampleConsensusModelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_line.html#afc373efb74ec6e2c4761a5714b54b316">pcl::SampleConsensusModelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#a89f5064a174ad927c6ccce599c35674a">pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a13952e48f5d8d472485313ea1bc1f865">pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#a6cc760b9f452f851b26866df8041f8af">pcl::SampleConsensusModelCircle3D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a2ac6549f7ac926d6d54f418a462b1a70">pcl::SampleConsensusModelCircle2D&lt; PointT &gt;</a> , 以及 <a class="el" href="classpcl_1_1_sample_consensus_model_registration.html#a8095d5f0dc0085a89a55dd639795c6bc">pcl::SampleConsensusModelRegistration&lt; PointT &gt;</a> 内被实现.</p>

</div>
</div>
<a id="af9aefc3c3ab13ede1430c680e9243d26"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9aefc3c3ab13ede1430c680e9243d26">&#9670;&nbsp;</a></span>selectWithinDistance()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::selectWithinDistance </td>
          <td>(</td>
          <td class="paramtype">const Eigen::VectorXf &amp;&#160;</td>
          <td class="paramname"><em>model_coefficients</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>threshold</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>inliers</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Select all the points which respect the given model coefficients as inliers. Pure virtual. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">model_coefficients</td><td>the coefficients of a model that we need to compute distances to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">threshold</td><td>a maximum admissible distance threshold for determining the inliers from the outliers </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">inliers</td><td>the resultant model inliers </td></tr>
  </table>
  </dd>
</dl>

<p>在 <a class="el" href="classpcl_1_1_sample_consensus_model_stick.html#a88daf9d4d8516dca0f48e0c26f76c027">pcl::SampleConsensusModelStick&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a56098aaebde421fa29e049bb66a3d779">pcl::SampleConsensusModelSphere&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_sphere.html#a56098aaebde421fa29e049bb66a3d779">pcl::SampleConsensusModelSphere&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration2_d.html#a2b95c852bf16728d34790b4889478e6f">pcl::SampleConsensusModelRegistration2D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_registration.html#aa66bc2c98e212c75e55d50fb330dccfd">pcl::SampleConsensusModelRegistration&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_plane.html#aeb06aa4934ddf5ce6a5cd7220eb6c121">pcl::SampleConsensusModelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_perpendicular_plane.html#aa5da016abbceefefc12b7bb7aaaa6b32">pcl::SampleConsensusModelPerpendicularPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_parallel_plane.html#a38278c412755b79d610d9d3b7d306779">pcl::SampleConsensusModelParallelPlane&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_parallel_line.html#ae3077204ccbc9222490bbe724fa39070">pcl::SampleConsensusModelParallelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_normal_sphere.html#add28aa65f7cf96ef1dfa1276ff95bc9c">pcl::SampleConsensusModelNormalSphere&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_normal_plane.html#a63bbd86abcfc9a3ac2572d7d4566cd35">pcl::SampleConsensusModelNormalPlane&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_line.html#a1204c9998433ce3b8b1e20240085df66">pcl::SampleConsensusModelLine&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#ad64b499ce19bfa57e30b5fe19149db7e">pcl::SampleConsensusModelCylinder&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cylinder.html#ad64b499ce19bfa57e30b5fe19149db7e">pcl::SampleConsensusModelCylinder&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a9abda6d419164b0b6cc0c2661b45f6b2">pcl::SampleConsensusModelCone&lt; PointT, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_cone.html#a9abda6d419164b0b6cc0c2661b45f6b2">pcl::SampleConsensusModelCone&lt; pcl::PointXYZRGBA, PointNT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#aa3f259375b5f3026ec60dc6136cd6887">pcl::SampleConsensusModelCircle3D&lt; PointT &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle3_d.html#aa3f259375b5f3026ec60dc6136cd6887">pcl::SampleConsensusModelCircle3D&lt; pcl::PointXYZRGBA &gt;</a>, <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a584d50608ddb8914eac32e20c6451794">pcl::SampleConsensusModelCircle2D&lt; PointT &gt;</a> , 以及 <a class="el" href="classpcl_1_1_sample_consensus_model_circle2_d.html#a584d50608ddb8914eac32e20c6451794">pcl::SampleConsensusModelCircle2D&lt; pcl::PointXYZRGBA &gt;</a> 内被实现.</p>

</div>
</div>
<a id="a4d9b6652b63eacd8c0ae1fb3a3eafa25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d9b6652b63eacd8c0ae1fb3a3eafa25">&#9670;&nbsp;</a></span>setIndices() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setIndices </td>
          <td>(</td>
          <td class="paramtype">const boost::shared_ptr&lt; std::vector&lt; int &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>indices</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the vector of indices that represents the input data. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">indices</td><td>a pointer to the vector of indices that represents the input data. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;      { </div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a> = indices; </div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a> = *<a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>;</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;       }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6d23c173237ca4be1451182b9a84b3ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d23c173237ca4be1451182b9a84b3ac">&#9670;&nbsp;</a></span>setIndices() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setIndices </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp;&#160;</td>
          <td class="paramname"><em>indices</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide the vector of indices that represents the input data. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">indices</td><td>the vector of indices that represents the input data. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;      { </div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>.reset (<span class="keyword">new</span> std::vector&lt;int&gt; (indices));</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a> = indices;</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;       }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aae3b06fbee5243f926d40f8115bd406c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae3b06fbee5243f926d40f8115bd406c">&#9670;&nbsp;</a></span>setInputCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setInputCloud </td>
          <td>(</td>
          <td class="paramtype">const PointCloudConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the input dataset </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the const boost shared pointer to a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> message </td></tr>
  </table>
  </dd>
</dl>

<p>被 <a class="el" href="classpcl_1_1_sample_consensus_model_registration.html#ab82a99e58a8c04e43b9f02ecbc15f8bd">pcl::SampleConsensusModelRegistration&lt; PointT &gt;</a> 重载.</p>
<div class="fragment"><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;      {</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a7bffa6777a49f1c461ee8e0960bbec01">input_</a> = cloud;</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>)</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;          <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>.reset (<span class="keyword">new</span> std::vector&lt;int&gt; ());</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>-&gt;empty ())</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        {</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;          <span class="comment">// Prepare a set of indices to be used (entire cloud)</span></div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;          <a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>-&gt;resize (cloud-&gt;points.size ());</div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;          <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; cloud-&gt;points.size (); ++i) </div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;            (*<a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>)[i] = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (i);</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        }</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a9b8317cdaac5ccc14e822135d4e97dc1">shuffled_indices_</a> = *<a class="code" href="classpcl_1_1_sample_consensus_model.html#ad45adf0e36f396a908c2ba08cfdd7a41">indices_</a>;</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;       }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3ed94271a12d7903c0bee9091e9a8f95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ed94271a12d7903c0bee9091e9a8f95">&#9670;&nbsp;</a></span>setRadiusLimits()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setRadiusLimits </td>
          <td>(</td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>min_radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>max_radius</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the minimum and maximum allowable radius limits for the model (applicable to models that estimate a radius) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">min_radius</td><td>the minimum radius model </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max_radius</td><td>the maximum radius model </td></tr>
  </table>
  </dd>
</dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000032">待办事项:</a></b></dt><dd>change this to set limits on the entire model </dd></dl>
<div class="fragment"><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;      {</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a3e4708339fa0bc73aac513ddb1891a18">radius_min_</a> = min_radius;</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        radius_max_ = max_radius;</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af9eea9dd0e12e1de8671ac542400d3f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9eea9dd0e12e1de8671ac542400d3f1">&#9670;&nbsp;</a></span>setSamplesMaxDist()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setSamplesMaxDist </td>
          <td>(</td>
          <td class="paramtype">const double &amp;&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SearchPtr&#160;</td>
          <td class="paramname"><em>search</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the maximum distance allowed when drawing random samples </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">radius</td><td>the maximum distance (L2 norm) </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">search</td><td></td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;      {</div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#aab89218101a313d2aa8adcaf6991f73b">samples_radius_</a> = radius;</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <a class="code" href="classpcl_1_1_sample_consensus_model.html#a4b939f4747b5d6e12b03148a680380c3">samples_radius_search_</a> = search;</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="a19d4a467b5c0cd6267e6282ac0a2cf8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19d4a467b5c0cd6267e6282ac0a2cf8c">&#9670;&nbsp;</a></span>max_sample_checks_</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned int <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::max_sample_checks_ = 1000</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The maximum number of samples to try until we get a good one </p>

</div>
</div>
<a id="a9b8317cdaac5ccc14e822135d4e97dc1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b8317cdaac5ccc14e822135d4e97dc1">&#9670;&nbsp;</a></span>shuffled_indices_</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;int&gt; <a class="el" href="classpcl_1_1_sample_consensus_model.html">pcl::SampleConsensusModel</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::shuffled_indices_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Data containing a shuffled version of the indices. This is used and modified when drawing samples. </p>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>sample_consensus/include/pcl/sample_consensus/<a class="el" href="sample__consensus_2include_2pcl_2sample__consensus_2sac__model_8h_source.html">sac_model.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_sample_consensus_model.html">SampleConsensusModel</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
